Method and apparatus for applying tone mapping functions to color images

ABSTRACT

A pixel of a digital image is processed by applying a tone mapping function to a first color channel of the pixel, whereby a value of the first color channel is changed by a scale factor; and applying the scale factor to all other color channels of the pixel. The first color channel most closely matches relative luminance response of the human visual system.

BACKGROUND

[0001] A digital image may be represented in an output-device space, such as display RGB, or in a capture-device space, such as camera RGB, or in a device-independent space, such as CIE tristimulus space XYZ. The relative luminance values of all pixels in the image determine the tone properties of the image.

[0002] Tone mapping is performed to bring the overall brightness of a digitally captured image to a level that is pleasing to the human eye when the image is displayed. This is especially important for images that are under-exposed or over-exposed. Tone mapping is frequently performed with a “tone curve” that maps the original digital levels to new ones. The same tone curve is applied to all color channels independently. The tone mapping is simple and fast, and it does not introduce out-of-gamut colors. However, applying tone mapping curves to different color channels independently can introduce color distortions for some images since the values of different color channels are remapped to new values independently of each other. As a result, the chromaticity of individual pixels can change.

[0003] Accordingly, there is a need to improve image tone properties without changing the chromaticity of the pixels.

SUMMARY

[0004] A pixel of a digital image is processed by applying a tone mapping function to a first color channel of the pixel, whereby a value of the first color channel is changed by a scale factor; and applying the scale factor to all other color channels of the pixel. The first color channel most closely matches relative luminance response of the human visual system.

[0005] Other aspects and advantages of the present invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

[0006]FIG. 1 is an illustration of a method of applying tone mapping functions to color images.

[0007]FIG. 2 is an illustration of a processor for applying tone mapping functions to color images.

DETAILED DESCRIPTION

[0008] Referring to FIG. 1, a method of processing a pixel of a digital image includes applying a tone mapping function to a first color channel of the pixel (110), whereby a value of the first color channel is changed by a scale factor; and applying the scale factor to all other color channels of the pixel (112). The first color channel most closely matches relative luminance response of the human visual system.

[0009] The digital image is represented in a linear color space having n-channels that may be designated by A_(L) and A_(k) where k=1, 2, . . . , n−1. A_(L) represents the channel most closely matching a luminance function in the color space, and A_(k) represents the other n−1 channels of the color space. The method of FIG. 1 may be represented mathematically as follows:

A_(L)′=TM(A_(L));

[0010] and

A _(k) ′=SF(A _(k)) for k=1,2, . . . , n−1

[0011] where TM(•) is a tone mapping function, A_(L)′ and A_(k)′ are the modified values of the color channels, and scale factor SF=A_(L)′/A_(L). The pixels are processed independently. A scale factor is determined for one color channel of a pixel, and applied to each other color channel of that pixel. Any tone mapping function may be used.

[0012] When the overall tone properties of the digital image are changed by the tone mapping function, the chromacity of pixels in the image does not change (unlike conventional tone mapping techniques that apply tone-mapping functions to different color channels independently). The method of FIG. 1 keeps the chromaticity, or the vector orientation in the A_(k) color space, or the spectrum shape of each pixel's color approximately the same after the tone mapping; only the vector length in A_(k) space (or the scale factor of the spectrum) is changed.

[0013] Since almost all images have some degree of noise present, noise-balancing terms may be added to each channel to prevent noise amplification. The noise balancing terms are small positive numbers that are a function of the amount of noise in the image or the white point of the color space used to represent the image. For example, the noise terms may be set to the noise level, twice the noise level, or some other value. As long as the noise balancing terms are reasonably close to the noise level in the image, the method is not sensitive to variations in how the noise level is determined.

[0014] The noise balancing terms may be added as follows. For each pixel, a tone-mapping function is applied to the value of the A_(L) channel, and the values of the color channels are adjusted as follows:

A_(L)′=TM(A_(L));

[0015] and

A _(k)′=(A _(k) +A _(k(noise)))/(A _(L) +A _(L(noise)))×A′ _(L.)

[0016] The addition of the noise balancing terms has very little influence on the chromaticities of high-luminance pixels, but helps reduce the noise amplification problem on low-luminance pixels. The noise balancing terms are also helpful in avoiding division by zero when a zero luminance value is mapped to a non-zero value on the tone curve.

[0017] The method of FIG. 1 is applied to an image represented in positive linear color space. Examples of linear positive color space include the CIE tristimulus XYZ space, RGB space, and human cone sensitivity space. The positive linear color space may include any number of color channels.

[0018] Consider the CIE tristimulus XYZ component representation of a digitized color image. The CIE Y value of an image pixel represents its relative luminance level. For each pixel, a tone mapping function is applied to the Y value and the X and Z values of are adjusted as follows:

Y′=TM(Y);

X′=(X+X _(noise))/(Y+Y _(noise))×Y′;

[0019] and

Z′=(Z+Z _(noise))/(Y+Y _(noise))×Y′.

[0020] The terms X_(noise), Y_(noise), and Z_(noise) are the noise-balancing terms and they may be small positive values representing the noise levels in each color channel or they may be a triplet of numbers proportional to the white point of the color space used to represent the image.

[0021] In RGB color space, the Green channel is usually the channel that most closely matches the relative luminance response of the human visual system. Therefore, a tone-mapping function is usually applied to the Green channel, and the Red and Blue values are adjusted similarly to keep the color vector orientation constant in the RGB space. Whether the Green channel is tone mapped first depends upon the particular type of color space. In certain instances, either the Red or Blue channel may be tone mapped first instead of the Green channel.

[0022] Reference is made to FIG. 2, which shows a processor 210 that is programmed to tone map a color image (IN). The processor 210 applies a tone mapping function to the color channel most closely matching relative luminance response of the human visual system; and applies scale factors to all other color channels. The pixels in the output image (OUT) retain their chromacity. The processor 210 may be used in applications such as digital cameras, scanners, printers, displays, and image processing software applications. Software for the processor 210 is encoded in computer memory 212.

[0023] The present invention is not limited to the embodiments just described and illustrated. Instead, the present invention is construed according to the claims the follow. 

1. A method of processing a pixel of a digital image, the method comprising: applying a tone mapping function to a first color channel of the pixel, the first color channel most closely matching relative luminance response of the human visual system, whereby a value of the first color channel is changed by a scale factor; and applying the scale factor to all other color channels of the pixel.
 2. The method of claim 1, wherein the color channels correspond to a positive linear color space.
 3. The method of claim 1, further comprising adding noise balancing terms when computing scale factors for the other color channels.
 4. A method of applying a tone-mapping function to a digital image represented in positive linear color space, the color space including an A_(L) channel and at least one A_(k) channel, the A_(L) channel most closely matching the relative luminance response of the human visual system, for each pixel the method comprising: applying a tone mapping function to the A_(L) channel of each pixel to generate a tone-corrected relative luminance value A′_(L) for each pixel; and transforming the A_(k) values of each pixel according to A′_(k)=(A_(k)/A_(L))×A′_(L).
 5. The method of method of claim 4, wherein a noise balancing term is added to each color channel, wherein the A_(k) color channels are transformed according to A′_(k)=(A_(k)+A_(k(noise)))/(A_(L)+A_(L(noise)))×A′_(L), where A_(k(noise)) and A_(L(noise)) are small positive numbers.
 6. The method of claim 4, wherein the pixels are processed independently, whereby a scale factor is specific to each pixel.
 7. The method of claim 4, wherein the color space is CIE tristimulus channels XYZ color space, wherein noise balancing terms X_(noise), Y_(noise), Z_(noise) are added to the color space and wherein the channels of the color space are modified as follows: Y′=TM(Y);X′=(X+X _(noise))/(Y+Y _(noise))×Y′; and Z value of each pixel according to Z′=(Z+Z _(noise))/(Y+Y _(noise))×Y′.
 8. The method of claim 7, wherein the noise balancing terms are a triplet of numbers proportional to the white point of the CIE tristimulus channel system.
 9. The method of claim 4, wherein the color space is RGB color space, wherein the channels are modified as follows: applying a tone mapping function to the G channel of each pixel to generate a tone-corrected relative luminance value G′ for each pixel; transforming the R value of each pixel according to R′=(R+R_(noise))/(G+G_(noise))×G′; and transforming the B value of each pixel according to B′=(B+B_(noise))/(G+G_(noise))×G′, where R_(noise), G_(noise), B_(noise) are noise balancing terms.
 10. The method of claim 9, wherein the noise balancing terms are a triplet of numbers proportional to the white point of the RGB color space.
 11. Apparatus for processing pixels of a digital image, the apparatus comprising a processor for applying a tone mapping function to a first color channel of the pixels, the first color channel most closely matching relative luminance response of the human visual system, whereby values of the first color channels are changed by scale factors; and applying the scale factors to all other color channels of the pixels.
 12. The apparatus of claim 11, wherein the digital image is represented in a positive linear color space.
 13. The apparatus of claim 11, wherein the processor adds noise balancing terms when computing scale factors for the other color channels.
 14. The apparatus of claim 11, wherein the pixels are processed independently, whereby a scale factor is specific to each pixel.
 15. An article for a processor, the article comprising computer memory encoded with data for instructing the processor to apply a tone mapping function to a first color channel of a pixel of a digital image, the first color channel most closely matching relative luminance response of the human visual system, whereby a value of the first color channel is changed by a scale factor; the data further instructing the processor to apply the scale factor to all other color channels of the pixel.
 16. The article of claim 15, wherein the digital image is represented in a positive linear color space.
 17. The article of claim 15, wherein the data instructs the processor to add noise balancing terms when computing the scale factor for the other color channels. 